/**
 * 
 */
package ar.com.muebleria.beans;

/**
 * @author devel
 *
 */
public class Producto {
	
	private SubFamilia subFamilia;
	private String productoId;
	private int cantidadStock;
	private String descripcion;

	/**
	 * @return the subFamilia
	 */
	public SubFamilia getSubFamilia() {
		return subFamilia;
	}



	/**
	 * @param subFamilia the subFamilia to set
	 */
	public void setSubFamilia(SubFamilia subFamilia) {
		this.subFamilia = subFamilia;
	}



	/**
	 * @return the productoId
	 */
	public String getProductoId() {
		return productoId;
	}



	/**
	 * @param productoId the productoId to set
	 */
	public void setProductoId(String productoId) {
		this.productoId = productoId;
	}



	/**
	 * @return the cantidadStock
	 */
	public int getCantidadStock() {
		return cantidadStock;
	}



	/**
	 * @param cantidadStock the cantidadStock to set
	 */
	public void setCantidadStock(int cantidadStock) {
		this.cantidadStock = cantidadStock;
	}



	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}



	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + cantidadStock;
		result = prime * result
				+ ((descripcion == null) ? 0 : descripcion.hashCode());
		result = prime * result
				+ ((productoId == null) ? 0 : productoId.hashCode());
		result = prime * result
				+ ((subFamilia == null) ? 0 : subFamilia.hashCode());
		return result;
	}



	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Producto other = (Producto) obj;
		if (cantidadStock != other.cantidadStock)
			return false;
		if (descripcion == null) {
			if (other.descripcion != null)
				return false;
		} else if (!descripcion.equals(other.descripcion))
			return false;
		if (productoId == null) {
			if (other.productoId != null)
				return false;
		} else if (!productoId.equals(other.productoId))
			return false;
		if (subFamilia == null) {
			if (other.subFamilia != null)
				return false;
		} else if (!subFamilia.equals(other.subFamilia))
			return false;
		return true;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Producto [subFamilia=" + subFamilia + ", productoId="
				+ productoId + ", cantidadStock=" + cantidadStock
				+ ", descripcion=" + descripcion + "]";
	}



	public String codigoCompleto(){
		String out = null;
		out = getSubFamilia().getFamilia().getFamliaId();
		out += ".";
		out += getSubFamilia().getSubFamiliaId();
		out += ".";
		out += getProductoId().equals("") ? "X" : getProductoId();
		
		return out;
	}

}
